package com.ee.chat.common.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ee.chat.common.entity.Channel;
import com.ee.chat.common.vo.ChannelVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * Mapper接口
 * </p>
 *
 * @author Shane
 * @since 2019-07-24
 */
public interface ChannelMapper extends BaseMapper<Channel> {
    /**
     * 获取渠道列表
     * @Author Shane
     * @Date 2019/11/23 15:02
     * @param 
     * @return
     **/
    IPage<Map<String, Object>> list(Page page, @Param("pid") Integer pid, @Param("keyword") String keyword, @Param("type") Integer type);

    /**
     * 获取指定渠道
     * @Author Shane
     * @Date 2020/4/9 17:00
     * @param
     * @return
     */
    Map<String, Object> selectChannelVOById(@Param("id") Integer id);

    /**
     * 获取渠道统计列表
     * @Author Shane
     * @Date 2019/11/26 11:36
     * @param
     * @return
     **/
    IPage<Map<String, Object>> statis(Page page, @Param("userId") Integer userId, @Param("code") String code,
                                      @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 获取渠道累计充值量，单位元
     * @Author Shane
     * @Date 2020/2/17 0:19
     * @param
     * @return
     */
    double getChannelRechargeNum(@Param("id") Integer id);

    Channel selectByUserId(@Param("userId") Integer userId);

    /**
     * 获取下级渠道中奖励最高值
     * @Author AppiJ
     * @Date 2020/4/14 18:41
     * @param
     * @return
     */
    Map<String, Object> selectChannelVOByPid(@Param("pid") Integer pid);

    /**
     * 获取所有启用的渠道列表
     * @Author AppiJ
     * @Date 2020/5/20 18:28
     * @param
     * @return
     */
    List<Channel> queryChannelList();
}